<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>HTML Table Class : CodeIgniter User Guide</title>

<style type='text/css' media='all'>@import url('../userguide.css');</style>
<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' />

<script type="text/javascript" src="../nav/nav.js"></script>
<script type="text/javascript" src="../nav/prototype.lite.js"></script>
<script type="text/javascript" src="../nav/moo.fx.js"></script>
<script type="text/javascript" src="../nav/user_guide_menu.js"></script>

<meta http-equiv='expires' content='-1' />
<meta http-equiv= 'pragma' content='no-cache' />
<meta name='robots' content='all' />
<meta name='author' content='ExpressionEngine Dev Team' />
<meta name='description' content='CodeIgniter User Guide' />

</head>
<body>

<!-- START NAVIGATION -->
<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div>
<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div>
<div id="masthead">
<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
<tr>
<td><h1>CodeIgniter User Guide Version 2.1.0</h1></td>
<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td>
</tr>
</table>
</div>
<!-- END NAVIGATION -->


<!-- START BREADCRUMB -->
<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
<tr>
<td id="breadcrumb">
<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp;
<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp;
HTML Table Class
</td>
<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="codeigniter.com/user_guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td>
</tr>
</table>
<!-- END BREADCRUMB -->

<br clear="all" />


<!-- START CONTENT -->
<div id="content">


<h1>HTML 테이블</h1>

<p>Table 클래스는 데이터베이스나 배열로 부터 HTML 테이블을 자동으로 생성할 수 있도록 해줍니다.</p>

<h2>클래스 초기화 Initializing the Class</h2>

<p>다른 클래스들 처럼 , Table 클래스도 컨트롤러에서 <dfn>$this->load->library</dfn> 함수로 초기화 합니다:</p>

<code>$this->load->library('table');</code>
<p>일단 로드되면 , <dfn>$this->table </dfn>을 통해서 테이블 객체를 이용합니다. </p>


<h2>예제 Examples</h2>

<p>이번 예제는 다차원 배열로부터 어떻게 테이블을 만드는지를 보여줍니다.
주의할점은 첫번째 배열인덱스가 테이블의 제목(heading)이 된다는 점입니다.<dfn> set_heading()</dfn> 함수를 이용하면 여러분이 직접 제목을 작성하실수도 있습니다.그 방법은 저 아래서 설명합니다.</p>

<code>
$this->load->library('table');<br />
<br />
$data = array(<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array('Name', 'Color', 'Size'),<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array('Fred', 'Blue', 'Small'),<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array('Mary', 'Red', 'Large'),<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;array('John', 'Green', 'Medium')	<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br />
<br />
echo $this->table->generate($data);		
</code>

<p>이번 예제는 데이터베이스 쿼리결과로 테이블을 만드는것을 보여줍니다.테이블 클래스는 테이블 이름들로부터 제목(heading)을 자동으로 설정합니다. <dfn>set_heading()</dfn> 함수를 이용하면 여러분이 직접 제목을 작성하실수도 있습니다.그 방법은 저 아래서 설명합니다.</p>

<code>
$this->load->library('table');<br />
<br />
$query = $this->db->query("SELECT * FROM my_table");<br />
<br />
echo $this->table->generate($query);		
</code>


<p>이번 예제는 각각의 파라미터를 이용해서 테이블을 만드는법을 보여줍니다:</p>

<code>
$this->load->library('table');<br />
<br />
$this->table->set_heading('Name', 'Color', 'Size');<br />
<br />
$this->table->add_row('Fred', 'Blue', 'Small');<br />
$this->table->add_row('Mary', 'Red', 'Large');<br />
$this->table->add_row('John', 'Green', 'Medium');<br />
<br />
echo $this->table->generate();		
</code>

<p>이번예제는 위와 유사하나 개별파라미터가 아닌 배열을 통해 테이블을 만드는법을 보여줍니다:</p>

<code>
$this->load->library('table');<br />
<br />
$this->table->set_heading(array('Name', 'Color', 'Size'));<br />
<br />
$this->table->add_row(array('Fred', 'Blue', 'Small'));<br />
$this->table->add_row(array('Mary', 'Red', 'Large'));<br />
$this->table->add_row(array('John', 'Green', 'Medium'));<br />
<br />
echo $this->table->generate();		
</code>


<h2>테이블 모양 바꾸기 Changing the Look of Your Table</h2>

<p>여러분이 원하는 레이아웃에 맞추어 테이블 템플릿을 설정할 수 있습니다. 아래는 기본적인 테이블 템플릿 설정 예제입니다:</p>

<code>
$tmpl =  array (<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'table_open'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> '&lt;table border="0" cellpadding="4" cellspacing="0">',<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'heading_row_start'&nbsp;&nbsp;&nbsp;=> '&lt;tr>',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'heading_row_end'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> '&lt;/tr>',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'heading_cell_start'&nbsp;&nbsp;=> '&lt;th>',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'heading_cell_end'&nbsp;&nbsp;&nbsp;&nbsp;=> '&lt;/th>',<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'row_start'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> '&lt;tr>',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'row_end'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> '&lt;/tr>',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'cell_start'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> '&lt;td>',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'cell_end'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> '&lt;/td>',<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'row_alt_start'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> '&lt;tr>',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'row_alt_end'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> '&lt;/tr>',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'cell_alt_start'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> '&lt;td>',<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'cell_alt_end'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> '&lt;/td>',<br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'table_close'&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=> '&lt;/table>'<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;);<br />

<br />
$this->table->set_template($tmpl);
</code>

<p class="important"><strong>참고:</strong>&nbsp; 템플릿블록안에는 두 세트의 "row" 블록이 있다는것을 알 수 있습니다.  이렇게하면 한줄(row)마다 반복되는 다른 색 혹은 디자인을 적용할수 있습니다.(예를들어 첫줄 빨간색, 둘째줄 파란색 ,셋째줄 빨간색 , 네째줄 파란색 .......... 이런식 ) </p>

<p>완벽한 구조의 템플릿을 만들필요는 없습니다. 테이블의 일부분만 바꾸고싶다면, 그부분만 템플릿을 만들면 됩니다. 이번예제는 테이블을 여는 태그만 바뀌게 됩니다:</p>

<code>
$tmpl =  array ( 'table_open'&nbsp;&nbsp;=> '&lt;table border="1" cellpadding="2" cellspacing="1" class="mytable">' );<br />

<br />
$this->table->set_template($tmpl);
</code>

<br />
<h1>함수 레퍼런스 Function Reference</h1>

<h2>$this->table->generate()</h2>
<p>생성된 테이블을 포함한 문자열을 리턴합니다. 배열이나 데이터베이스 결과 객체를 파라미터로 받습니다.</p>

<h2>$this->table->set_caption()</h2>

<p>테이블의 캡션을 설정합니다.</p>

<code>$this->table->set_caption('Colors');</code>

<h2>$this->table->set_heading()</h2>

<p>테이블의제목(heading)을 설정합니다. 배열이나 , 각각의 제목을 파라미터로 넘겨줄수 있습니다:</p>

<code>$this->table->set_heading('Name', 'Color', 'Size');</code>
<code>$this->table->set_heading(array('Name', 'Color', 'Size'));</code>

<h2>$this->table->add_row()</h2>

<p>한줄(row)을 테이블에 추가합니다.배열이나 혹은 각 값을 넘겨줄수 있습니다:</p>
  <code>$this->table->add_row('Blue', 'Red', 'Green');</code> <code>$this->table->add_row(array('Blue', 
  'Red', 'Green'));</code> 
  <p>각 셀의 태그에 속성을 부여하려면 연관배열을 사용하세요.데이터를 채우려면<dfn>'data'</dfn> 키를 사용하시고, 다른 키들은 
    모두 <dfn>key='값'</dfn> 의 형식으로 추가됩니다. :</p>

<code>$cell = array('data' => 'Blue', 'class' => 'highlight', 'colspan' => 2);<br />
$this->table->add_row($cell, 'Red', 'Green');<br />
<br />
// generates<br />
// &lt;td class='highlight' colspan='2'&gt;Blue&lt;/td&gt;&lt;td&gt;Red&lt;/td&gt;&lt;td&gt;Green&lt;/td&gt;
</code>

<h2>$this->table->make_columns()</h2>

<p>이 함수는 1차원 배열을 받아서 원하는 칼럼수에 맞추어 다차원배열을 생성합니다.  이 함수를 통해서 값은 1차원배열인데, 표현하고자하는 칼럼의 개수가 그것보다 작은경우를 효과적으로 처리할수 있습니다.아래 예제를 보시면 이해가 쉬우실거예요:</p>

<code>
$list = array('one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve');<br />
<br />
$new_list = $this->table->make_columns($list, 3);<br />
<br />
$this->table->generate($new_list);<br />
<br />
// Generates a table with this prototype<br />
<br />
&lt;table border="0" cellpadding="4" cellspacing="0"&gt;<br />
&lt;tr&gt;<br />
&lt;td&gt;one&lt;/td&gt;&lt;td&gt;two&lt;/td&gt;&lt;td&gt;three&lt;/td&gt;<br />
&lt;/tr&gt;&lt;tr&gt;<br />
&lt;td&gt;four&lt;/td&gt;&lt;td&gt;five&lt;/td&gt;&lt;td&gt;six&lt;/td&gt;<br />
&lt;/tr&gt;&lt;tr&gt;<br />
&lt;td&gt;seven&lt;/td&gt;&lt;td&gt;eight&lt;/td&gt;&lt;td&gt;nine&lt;/td&gt;<br />
&lt;/tr&gt;&lt;tr&gt;<br />
&lt;td&gt;ten&lt;/td&gt;&lt;td&gt;eleven&lt;/td&gt;&lt;td&gt;twelve&lt;/td&gt;&lt;/tr&gt;<br />
&lt;/table&gt;</code>



<h2>$this->table->set_template()</h2>

<p>여러분이 만든 템플릿을 적용할 수 있도록 해 줍니다. 전체템플릿이나, 부분템플릿을 적용하실 수 있습니다..</p>

<code>
$tmpl =  array ( 'table_open'&nbsp;&nbsp;=> '&lt;table border="1" cellpadding="2" cellspacing="1" class="mytable">' );<br />

<br />
$this->table->set_template($tmpl);
</code>


<h2>$this->table->set_empty()</h2>

<p>테이블셀의 값이 없을경우 기본값을 설정할수 있습니다.예를들어 아래와같이 한칸의 공백을 표시하는 예약어를 기본값으로 설정할수 있습니다:</p>

<code>
$this->table->set_empty("&amp;nbsp;");
</code>

<h2>$this->table->clear()</h2>

<p>테이블을 의 제목과 데이터를 모두 비웁니다. 포함하고 있는 데이터가 다른 여러테이블을 보여줘야할경우  이전 테이블의데이터를 비우는데 사용합니다. 예:</p>

<code>
$this->load->library('table');<br />
<br />
$this->table->set_heading('Name', 'Color', 'Size');<br />
$this->table->add_row('Fred', 'Blue', 'Small');<br />
$this->table->add_row('Mary', 'Red', 'Large');<br />
$this->table->add_row('John', 'Green', 'Medium');<br />
<br />
echo $this->table->generate();<br />
<br />
<kbd>$this->table->clear();</kbd><br />
<br />
$this->table->set_heading('Name', 'Day', 'Delivery');<br />
$this->table->add_row('Fred', 'Wednesday', 'Express');<br />
$this->table->add_row('Mary', 'Monday', 'Air');<br />
$this->table->add_row('John', 'Saturday', 'Overnight');<br />
<br />
echo $this->table->generate();
</code>
<h2>$this->table->function</h2>

  <p>모든 셀 데이터에 PHP내장함수나 사용가능한 함수배열 객체 (function array object)를 적용합니다</p>

<code>$this->load->library('table');<br />
<br />
$this->table->set_heading('Name', 'Color', 'Size');<br />
$this->table->add_row('Fred', '&lt;strong&gt;Blue&lt;/strong&gt;', 'Small');<br />
<br />
$this->table->function = 'htmlspecialchars';<br />
echo $this->table->generate();<br />
  </code> 
  <p>위의 예제에서는 모든 셀 데이터에 PHP의 <dfn>htmlspecialchars()</dfn> 함수가 적용되고, 결과는 다음과 같습니다 
    :</p>

<code>&lt;td&gt;Fred&lt;/td&gt;&lt;td&gt;&amp;lt;strong&amp;gt;Blue&amp;lt;/strong&amp;gt;&lt;/td&gt;&lt;td&gt;Small&lt;/td&gt;</code>
</div>
</div>
<!-- END CONTENT -->


<div id="footer">
<p>
Previous Topic:&nbsp;<a href="ftp.html">&nbsp;FTP Class</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
Next Topic:&nbsp;&nbsp;<a href="image_lib.html">Image Manipulation Class</a>
</p>
<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2011 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">Ellislab, Inc.</a></p>
</div>

</body>
</html>